1. Field of the Invention
The present invention relates to a data communication circuit and an arbitration method for inputting plural pieces of data becoming a master of communications via one virtual channel in a high-speed serial bus, arbitrating the pieces of input data by an arbiter following an arbitration table, and outputting the arbitrated data to the high-speed serial bus.
2. Description of the Related Art
In general, a parallel-system bus as represented by protocol control information (PCI) and the like is used for an interface between devices, in an information processing apparatus such as a digital copying machine and a multi function peripheral (MFP) that handle image data and other data. However, the parallel-system bus has a problem in racing and skew. Because a transfer rate has become low, recently, the use of a high-speed serial interface such as the Institute of Electrical and Electronics Engineers (IEEE) 1394 and a universal serial bus (USB) in a high-speed and high image-quality image forming apparatus has been studied, in place of the parallel-system interface such as the PCI bus. For example, according to Japanese Patent Application Laid-open No. 2001-016382, the use of a high-speed serial interface such as the IEEE 1394 and the USB has been proposed as an internal interface.
As a method of separately transferring image data and command data on the high-speed serial interface, there is a method of using an Isochronous transfer mode and an asynchronous transfer mode defined by the IEEE 1394 standard or the USB standard.
However, according to the method of separating the traffic by using the Isochronous transfer mode and the asynchronous transfer mode, it is difficult to set a priority order of image data when there are plural pieces of image data.
As another high-speed serial interface, an interface called a PCI Express (Trademark) corresponding to a succession standard of the PCI bus system has been also proposed, and it is at the stage of practical use (for example, see “Outline of a PCI Express Standard”, by Takashi Satomi, Interface, July 2003). The PCI Express system is schematically configured as a data communication network based on a tree structure of a root complex-switch (an optional hierarchy)-device as shown in FIG. 1 of “Outline of a PCI Express Standard”.
This PCI Express standard includes a virtual channel function for transmitting packet data of plural traffics by using, in time division, a serial bus in a virtual channel unit, and an arbitration function for arbitrating the priority of issuing packet data for each virtual channel. When packet data of plural traffics having different priorities of data transfer are to be simultaneously transferred using the serial bus, a transfer rate can be adjusted.
More specifically, according to an algorithm of arbitration of a virtual channel based on the PCI Express standard, there are a Round Robin system for issuing packet data for each virtual channel VC in equal frequency, a Weighted Round Robin system for issuing packet data for each virtual channel VC in a weighted frequency following an optionally assignable table, and a Strict system for issuing packet data for each virtual channel VC in a fixed priority order. Priority of the packet data to be transferred on the serial bus can be adjusted in a transaction unit.
When plural devices are shared for one virtual channel VC to carry out a direct memory access (DMA) transfer, the arbitration function of the PCI Express standard cannot be used. Therefore, an arbiter according to the Round Robin or the Weighted Round Robin is provided in each device.
However, depending on a buffer of a transaction layer that constitutes architecture of the PCI Express and kinds of generated plural traffics, setting of an arbiter do not match priority of the actual traffic in some cases. This is because a transmission buffer is present in the transaction layer that constitutes the architecture of the PCI Express, and there is a possibility that the effect of arbitration by the arbiter is lost due to the transmission buffer.